Micron Document
Fox's Git Mirrors


Displaying Rendered • View rawDownload

README-RU.md 8a2c20df0bdd47339b81dfd39aebd3711ee83bed (8a2c20df) Text, 8.14 KB

RNS-over-HTTP

Интерфейс Reticulum, который туннелирует трафик через стандартные HTTP/S POST-запросы. Это позволяет Reticulum работать в сетях, где разрешён только веб-трафик, эффективно обходя файрволы, DPI и другие ограничения.

Не-GitHub-зеркало. Кроме того, файлы проекта (скрипт интерфейса и инструкция) доступны в сети Reticulum по адресу T383838RNS-over-HTTP.

Обзор

RNS-over-HTTP создаёт двунаправленный транспортный уровень, используя простую клиент-серверную модель:

Сервер: Запускается на машине с публичным IP-адресом и прослушивает HTTP-запросы.
Клиент: Может находиться за файрволом или NAT, ему требуется только исходящий доступ в интернет.
Клиент опрашивает сервер с помощью HTTP POST-запросов, отправляя любые исходящие данные в теле запроса и получая входящие данные в теле ответа. Это делает трафик похожим на обычную веб-активность.

Как это работает

Интерфейс имитирует постоянное соединение, используя механизм, подобный long-polling:

1. Клиент отправляет HTTP POST-запрос на сервер, помещая все ожидающие данные в тело запроса.
2. Сервер получает запрос. Он обрабатывает данные от клиента и немедленно отправляет обратно любые данные, находящиеся в очереди для клиента, в теле HTTP-ответа.
3. Клиент получает ответ и обрабатывает данные.
4. После короткого настраиваемого интервала опроса клиент повторяет процесс.
Этот непрерывный цикл создаёт надёжный, хотя и с более высокой задержкой, канал связи.

Особенности

Обход файрволов и DPI: Туннелирует любой трафик через стандартные порты HTTP/S (80/443).
Двунаправленная связь: Полнодуплексная передача данных.
Простая настройка: Никаких сложных зависимостей, только Python и T383838requests.
Надёжность: Автоматическое повторное подключение с экспоненциальной задержкой.
Гибкость: Поддерживает пользовательские размеры MTU и настраиваемые интервалы опроса.
Совместимость с прокси: Бесшовно работает за обратными прокси-серверами, такими как Caddy или Nginx.
Начало работы

Требования

• Python 3.9 или новее
• T383838pip для установки пакетов
Установка

1. Установите библиотеку T383838requests, если она ещё не установлена:
T282828
pip install requests
2. Скачайте скрипт интерфейса: Разместите T383838http_interface.py в известном месте на клиентской и серверной машинах, например, в T383838~/.reticulum/interfaces/.
Конфигурация

Настройте T383838PipeInterface в вашем файле T383838~/.reticulum/config как на сервере, так и на клиенте.

Конфигурация сервера

Сервер прослушивает входящие подключения от клиентов.

T282828
[[HTTP Interface]]
type = PipeInterface
enabled = True
# Команда для запуска серверного скрипта. По умолчанию прослушивает все интерфейсы.
command = python3 /path/to/your/http_interface.py server --host 0.0.0.0 --port 8080
# Необязательно: задержка перед перезапуском интерфейса в случае сбоя.
respawn_delay = 5
name = HTTP Interface Server

Конфигурация клиента

Клиент подключается к публичному URL-адресу сервера.

T282828
[[HTTP Interface]]
type = PipeInterface
enabled = True
# Команда для запуска клиентского скрипта. Укажите в --url адрес вашего сервера.
command = python3 /path/to/your/http_interface.py client --url http://<your-server-ip-or-domain>
# Необязательно: задержка перед перезапуском интерфейса в случае сбоя.
respawn_delay = 5
name = HTTP Interface Client

Параметры командной строки

Вы можете настроить поведение скрипта с помощью этих аргументов:

• T383838--mtu: Максимальный размер пакета (Maximum Transmission Unit) в байтах (по умолчанию: T3838384096).
• T383838--poll-interval: Интервал опроса клиента в секундах (по умолчанию: T3838380.1).
• T383838--verbose или T383838-v: Включить подробное отладочное журналирование.
• T383838--host: Хост для прослушивания сервером (по умолчанию: T3838380.0.0.0).
• T383838--port: Порт для прослушивания сервером (по умолчанию: T3838388080).
• T383838--disable-user-agent-check: Отключить проверку User-Agent на сервере.
Настройка обратного прокси-сервера (пример для Caddy)

Поддомен

T282828
# Caddyfile для example.yourdomain.com
example.yourdomain.com {
reverse_proxy 127.0.0.1:8080
header {
# Скрыть версию серверного ПО
-Server
# Запретить анализ MIME-типа
X-Content-Type-Options nosniff
}
}

Основной домен

T282828
yourdomain.com {
reverse_proxy 127.0.0.1:8080
header {
# Скрыть версию серверного ПО
-Server
# Запретить анализ MIME-типа
X-Content-Type-Options nosniff
}
}
Соображения по безопасности

Используйте HTTPS: Это помогает обойти некоторые файрволы и DPI, которые потенциально могут видеть данные Reticulum.
Проверка User-Agent: По умолчанию сервер проверяет заголовок T383838User-Agent (T383838RNS-HTTP-Tunnel/1.0). Это обеспечивает базовую защиту от веб-сканеров и случайного сканирования. Если вам нужно обойти сложные системы DPI, вы можете изменить этот заголовок в скрипте, чтобы имитировать обычный браузер, и отключить проверку на сервере (T383838--disable-user-agent-check).

Served by rngit 1.4.1 - Generated in 0.03s